package com.yunxi.sys.pojo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yunxi.core.web.DateJsonDeserializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 员工信息
 * </p>
 *
 * @author 
 * @since 2019-05-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Staff对象", description="员工信息")
public class StaffVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键ID")
    private String staffId;

    @ApiModelProperty(value = "渠道编号")
    private String partnerCode;

    @ApiModelProperty(value = "渠道编号")
    private String partnerCode2;

    @ApiModelProperty(value = "姓名")
    private String staffName;

    @ApiModelProperty(value = "组织机构id")
    private String orgId;

    @ApiModelProperty(value = "职位id")
    private String positionId;

    @ApiModelProperty(value = "职位代码")
    private String positionCode;

    @ApiModelProperty(value = "职位名称")
    private String positionName;

    @ApiModelProperty(value = "等级")
    private String grade;

    @ApiModelProperty(value = "级别")
    private String lv;

    @ApiModelProperty(value = "帐号")
    private String accountNo;

    @ApiModelProperty(value = "")
    private String pCode;

    @ApiModelProperty(value = "创建时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date createTime;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @ApiModelProperty(value = "修改时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date updateTime;

    @ApiModelProperty(value = "修改人")
    private String updateBy;

    @ApiModelProperty(value = "状态1启用0禁用")
    private Integer status;

    @ApiModelProperty(value = "是否删除")
    private Integer isDel;

    @ApiModelProperty(value = "备注")
    private String memo;

    @ApiModelProperty(value = "组织机构")
    private String orgName;

    @ApiModelProperty(value = "组织机构代码")
    private String orgCode;

    @ApiModelProperty(value="雇佣类型")
    private String employType;

    @ApiModelProperty(value="密码")
    private String password;

    private UserVO userVO = new UserVO();

    private List<RoleVO> roleList = new ArrayList<RoleVO>();

    @ApiModelProperty(value = "手机")
    private String mobilePhone;

    private Integer isPartner;

    @ApiModelProperty(value = "顾问级别")
    private String saleGrade;

    @ApiModelProperty(value = "性别")
    private Integer gender;

    @ApiModelProperty(value = "操作(是否为更改状态0否1是)")
    private String op;

    @ApiModelProperty(value = "归属地区code")
    private List<String> areaCode = new ArrayList<String>();

    @ApiModelProperty(value = "头像")
    private String pictureUrl;//头像

    @ApiModelProperty(value = "大区代码")
    private String bigRegion;

    @ApiModelProperty(value = "IAM状态提供1 待入职2 入职试用,3 正式在职,6 退休,7 退休返聘,8 离职,10 结束返聘")
    private Integer staffStatus;

    @ApiModelProperty(value = "销售售后类型区分;1.pms; 2.ups")
    private String tenantId;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "areaManager主键")
    private String areaManagerId;

    @ApiModelProperty(value = "身份证号")
    private String idCard;

    @ApiModelProperty(value = "入职时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date joinDate;

    @ApiModelProperty(value = "是否党员0否1是")
    private String isPartyMember;

    @ApiModelProperty(value = "是否参加培训0未参加1已参加")
    private String isTraining;

    @ApiModelProperty(value = "是否参加培训中文 0未参加1已参加")
    private String isTrainingName;
}
